/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package familytree.negocio;

import familytree.persistencia.pojos.Arbol;
import familytree.persistencia.pojos.Nodo;
import familytree.persistencia.pojos.Usuario;

/**
 *
 * @author Antonio
 */
public interface IUsuarioProcessor {

    /**
     * Elimina un usuario
     * @param usuario Usuario que se va a eliminar
     */
    void deleteUsuario(Usuario usuario);

    /**
     * Comprobamos que no existe el mismo correo en esa familia
     */
    boolean existeUsuarioConCorreo(String correo, Arbol arbol);

    boolean existeUsuarioConCorreo(String correo);

    /**
     * Devuelve el usuario según su correo y contraseña
     * @param correo Correo del usuario
     * @param password Contraseña del usuario
     * @return Usuario si existe, null en otro caso
     */
    Usuario getUsuario(String correo, String password);

    Usuario insert(Usuario usuario, Nodo nodo);

    /**
     * Modifica el usuario
     * @param usuario Usuario a modificar
     */
    void setUsuario(Usuario usuario);

}
